$input a_position, a_normal, a_texcoord0, a_tangent,
$output v_fragPos, v_normal, v_shadowcoord, v_texcoord0, v_tangent

#include "../../bgfx/examples/common/common.sh"

uniform mat4 u_lightMtx;

void main()
{
	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
	vec3 normal = a_normal * 2.0 - 1.0;
	v_normal = normalize(mul(u_modelView, vec4(normal.xyz, 0.0) ).xyz);
	v_fragPos = mul(u_modelView, vec4(a_position, 1.0)).xyz;
	v_tangent = a_tangent;
	v_texcoord0 = a_texcoord0;

	const float shadowMapOffset = 0.001;
	vec3 posOffset = a_position + normal.xyz * shadowMapOffset;
	v_shadowcoord = mul(u_lightMtx, vec4(posOffset, 1.0) );
}
